home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Die Speccy' 97
/
Die Speccy' 97.iso
/
amiga_system
/
the_aminet
/
util
/
app
/
autoappmenu3.lha
/
AutoAppMenu
/
CreateAlias
/
CreateAlias.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-05-04
|
2KB
|
81 lines
/* CreateAlias.c, (c) 1995 Axel Behr */
#include <exec/types.h>
#include <workbench/startup.h>
#include <proto/dos.h>
#include <proto/icon.h>
#include <proto/intuition.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define PBUFLEN 100
void main(int argc, char **argv)
{
struct WBStartup *argmsg;
struct WBArg *wb_arg;
LONG i;
BPTR givenpath = 0;
int argnum;
struct DiskObject *aliasdob;
UBYTE OldName[PBUFLEN], AliasName[PBUFLEN];
static const UBYTE ver[] = "$VER: CreateAlias 1.0 " __AMIGADATE__;
if (argc==0)
{
argmsg = (struct WBStartup *)argv ;
wb_arg = argmsg->sm_ArgList;
argnum = argmsg->sm_NumArgs;
if (argnum > 1)
{
wb_arg++; // skip program icon
argnum--;
if ( (wb_arg->wa_Name[0] == '\0') && (argnum > 1) )
{
givenpath = wb_arg->wa_Lock;
wb_arg++;
argnum--;
}
}
for (i = 0; i < argnum; i++, wb_arg++)
{
OldName[0] = '\0';
NameFromLock(wb_arg->wa_Lock, OldName, PBUFLEN);
if (wb_arg->wa_Name[0] != '\0')
AddPart(OldName, wb_arg->wa_Name, PBUFLEN);
if (givenpath)
{
NameFromLock(givenpath, AliasName, PBUFLEN);
if (wb_arg->wa_Name[0] != '\0')
AddPart(AliasName, wb_arg->wa_Name, PBUFLEN);
else
AddPart(AliasName, FilePart(OldName), PBUFLEN);
}
else
strcpy(AliasName, OldName);
strcat(AliasName, "_Alias");
if (MakeLink(AliasName, (LONG)OldName, TRUE))
{
if (aliasdob=GetDiskObjectNew(OldName))
{
aliasdob->do_CurrentX = NO_ICON_POSITION;
aliasdob->do_CurrentY = NO_ICON_POSITION;
PutDiskObject(AliasName, aliasdob);
FreeDiskObject(aliasdob);
}
}
else
DisplayBeep(NULL);
}
}
}